fn main() {
    // Fn闭包
    let a = String::from("Hey!");
    let fn_closure = || {
        println!("Closure says: {}", a);
    };
    fn_closure();
    println!("Main says: {}", a);

    // FnMut闭包
    let mut a = String::from("Hey!");
    let mut fn_mut_closure = || {
        a.push_str("Alice");
    };
    fn_mut_closure();
    println!("Main says: {}", a);

    // FnOnce闭包
    let mut a = Box::new(23);
    let call_me = || {
        let c = a;
    };

    call_me();
    //call_me();  // value used here after move
}